home *** CD-ROM | disk | FTP | other *** search
- /*
- File: NWindows.c
-
- Contains: xxx put contents here xxx
-
- Written by: xxx put writers here xxx
-
- Copyright: © 1991-1993 by Apple Computer, Inc., all rights reserved.
-
- This file is used in these builds: Warhol
-
- Change History (most recent first):
-
- <5+> 7/12/93 dvb Symantec C++
- <5> 1/7/93 dvb Compile under mpw.
- <4> 11/12/91 dvb Refine
- <3> 9/4/91 dvb More.
- <2> 4/25/91 JB Changing to new THINK_C interface files
-
- To Do:
- */
-
- /*
- * file: NWindows.c
- *
- * started 7 July 1988 09:34
- * david van brink
- *
- * A starting point for BigEasy programs
- *
- */
-
-
- /*--------------------------
- Inclusions
- --------------------------*/
-
- #include <QuickDraw.h>
- #include <Windows.h>
- #include <BDC.h>
- #include <Packages.h>
-
- #include "BigEasy2.h"
-
- /*--------------------------
- Limits and Konstants
- --------------------------*/
-
-
- enum
- {
- mOpen = 100,
- mClose,
- mNew
- };
-
- /*--------------------------
- Types and globals
- --------------------------*/
-
- #define kBlipRad 10
-
- typedef struct TDoc
- {
- Boolean used;
- Point aPoint;
- WindowPtr w;
- } TDoc;
-
- #define kFirstDocWindow 1
- #define kDocMax 5
- TDoc gDoc[kDocMax];
- short gDocCount;
-
- #define SignIt(x) ( (x)?1:-1)
-
- /*--------------------------
- Prototypes
- --------------------------*/
- static void DrawDoc(short n);
- static void ClickDoc(short n,Point p,short mods);
- static void KeyDoc(short n,short key,short code, short mods);
- static void GoAwayDoc(short n);
- static void ActivateDoc(short n);
- static void DeactivateDoc(short n);
- static void IdleDoc(short n,Boolean front);
- static void LetsQuit(void);
- static void OpenAWindow(void);
- static void NewDoc(void);
- static void MakeWindow(void);
- static void InitVars(void);
-
- /*--------------------------
- Computer Programs
- --------------------------*/
-
-
- void DrawDoc(short n)
- /*
- * Draws the window.
- */
- {
- Rect r;
- register TDoc *d;
-
- d = &gDoc[n-kFirstDocWindow];
-
- EraseRect(&gBigRect);
- MoveTo(0,14);
- Line(10000,0);
- MoveTo(0,16);
- Line(10000,0);
-
- MoveTo(10,11);
- TextSize(9);
- DrawString("\pThis is the window");
-
- r.top = r.bottom = d->aPoint.v;
- r.left = r.right = d->aPoint.h;
- InsetRect(&r,-kBlipRad,-kBlipRad);
- PaintRect(&r);
- }
-
-
- void ClickDoc(short n,Point p,short mods)
- /*
- * Come here for a click in the window.
- */
- {
- #pragma unused (mods)
-
- Rect r;
- register TDoc *d;
-
- d = &gDoc[n-kFirstDocWindow];
-
- r.top = r.bottom = d->aPoint.v;
- r.left = r.right = d->aPoint.h;
- InsetRect(&r,-kBlipRad,-kBlipRad);
- InvalRect(&r);
- d->aPoint = p;
- r.top = r.bottom = p.v;
- r.left = r.right = p.h;
- InsetRect(&r,-kBlipRad,-kBlipRad);
- InvalRect(&r);
- }
-
- void KeyDoc(short n,short key,short code, short mods)
- {
- #pragma unused (n,key,code,mods)
-
- }
-
- void GoAwayDoc(short n)
- /*
- * Close that window...
- */
- {
- register TDoc *d;
-
- d = &gDoc[n-kFirstDocWindow];
- d->used = false;
- gDocCount--;
- UninstallWindow(n);
- }
-
- void ActivateDoc(short n)
- {
- #pragma unused (n)
-
- EnDisEdits(0,0,0,0,0);
- SetMenuItem(mClose,1,0,0,nil); /* enable "Close" menu item */
- SetMenuItem(mOpen,-1,0,0,nil); /* disable "Open" menu item */
-
- SetMenuItem(mNew,SignIt(gDocCount<kDocMax),0,0,nil); /* "New" if more docs */
- }
-
- void DeactivateDoc(short n)
- {
- #pragma unused (n)
-
- SetMenuItem(mClose,-1,0,0,nil); /* disable "Close" menu item */
- SetMenuItem(mOpen,1,0,0,nil); /* enable "Open" menu item */
- }
-
- void IdleDoc(short n,Boolean front)
- {
- #pragma unused (n,front)
- }
-
-
- void LetsQuit(void)
- {
- gQuitApp++;
- }
-
- void NewDoc()
- {
- short i;
- register TDoc *d;
- Rect r;
- unsigned char c[30];
-
- SetRect(&r,100,100,260,200);
-
- for(i = 0; i<kDocMax; i++)
- {
- d = &gDoc[i];
- if(!d->used)
- goto gotOne;
- }
- goto goHome;
-
- gotOne:
- NumToString(i,c);
- d->w = InstallWindow(i+kFirstDocWindow,c,&r,0,1,DrawDoc,ClickDoc,KeyDoc,GoAwayDoc,
- ActivateDoc,DeactivateDoc,IdleDoc);
- d->used = true;
- d->aPoint.v = 100;
- d->aPoint.h = 100;
- gDocCount++;
- goHome:;
- }
-
- void InitVars()
- /*
- * Called once at startup: yes, it
- * inits the vars.
- */
- {
- TDoc *dp;
-
- short i;
-
- for(i = 0; i<kDocMax; i++)
- {
- dp = &gDoc[i];
- dp->used = false;
- }
- gDocCount = 0;
-
- gMenuNeedsCmdKey = false;
- }
-
- void Bootstrap()
- {
- /*** File Menu ***/
- InstallMenu("\pFile",nil,0);
- InstallMenuItem("\pNew/N",(void *)NewDoc,mNew);
- InstallMenuItem("\pClose/W",(void *)GoAwayDoc,-mClose);
- InstallMenuItem("\p(-",nil,0);
- InstallMenuItem("\pQuit/Q",(void *)LetsQuit,0);
-
- /*** Edit Menu ***/
- InstallEditMenu(nil,nil,nil,nil,nil);
-
- /*** Special Menu ***/
- InstallMenu("\pSpecial",(void *)nil,0);
- InstallMenuItem("\pSo special",nil,0);
-
- InitVars();
- }
-
- void Hatstrap()
- /*
- * clean up
- */
- {
- // SaveWindowPosition(-1);
- }